package cn.elead.chaos.remote.web.system.service;

import java.util.List;

import cn.elead.chaos.remote.web.system.domain.SysDept;
import cn.elead.chaos.remote.web.system.domain.vo.TreeSelect;
import feign.Param;
import feign.QueryMap;
import feign.RequestLine;

/**
 * 部门 业务层
 * 
 * @author luopeng
 */
public interface IRemoteDeptService {

	/**
	 * 根据条件查询部门列表
	 * 
	 * @param user 部门信息
	 * @return 部门信息集合信息
	 */
	@RequestLine("GET /system/dept/list")
	public List<SysDept> list(@QueryMap SysDept dept);

	/**
	 * 根据条件查询部门列表
	 * 
	 * @param user 部门信息
	 * @return 部门信息集合信息
	 */
	@RequestLine("GET /system/dept/{deptId}")
	public SysDept getInfo(@Param("deptId") Long deptId);

	/**
	 * 获取部门下拉树列表
	 * 
	 * @param dept
	 * @return
	 */
	@RequestLine("GET /system/dept/treeselect")
	public List<TreeSelect> treeselect(@QueryMap SysDept dept);

	/**
	 * 加载对应角色部门列表树
	 * 
	 * @param roleIdt
	 * @return
	 */
	@RequestLine("GET /system/dept/roleDeptTreeselect/{roleId}")
	public List<Integer> roleDeptTreeselect(@Param("roleId") Long roleIdt);

	/**
	 * 新增部门
	 */
	@RequestLine("POST /system/user")
	public int add(SysDept dept);

	/**
	 * 修改部门
	 */
	@RequestLine("PUT /system/dept")
	public int edit(SysDept dept);

	/**
	 * 删除部门
	 */
	@RequestLine("DELETE /system/dept/{deptId}")
	public int remove(@Param("roleId") Long deptId);

}
